package jp.co.neosystem.adwg.neodiary.db.entity;

import android.util.Log;

/**
 * 日記テーブルエンティティ
 * 
 * @author NEOSystem
 */
public class Diary extends AbstractEntity
{
	/** テーブル名 */
	public static final String TABLE_NAME = "TBL_T_DIARY";
	/** カラム名 (ID) */
	public static final String COLUMN_NAME_ID = "_ID";
	/** カラム名 (日付) */
	public static final String COLUMN_NAME_DATE = "DATE";
	/** カラム名 (タイトル) */
	public static final String COLUMN_NAME_TITLE = "TITLE";
	/** カラム名 (内容) */
	public static final String COLUMN_NAME_CONTENT = "CONTENT";
	/** カラム名 (登録日時) */
	public static final String COLUMN_NAME_INSERT_DATE = "INSERT_DATE";
	/** カラム名 (更新日時) */
	public static final String COLUMN_NAME_UPDATE_DATE = "UPDATE_DATE";
	/** カラム名 (削除フラグ) */
	public static final String COLUMN_NAME_DELETE_FLAG = "DELETE_FLAG";
	
	/** ID */
	private int _id;
	/** 日付 */
	private String date;
	/** タイトル */
	private String title;
	/** 内容 */
	private String content;
	/** 登録日時 */
	private String insert_date;
	/** 更新日時 */
	private String update_date;
	/** 削除フラグ */
	private int delete_flag;

	/**
	 * IDを取得
	 * 
	 * @return ID
	 */
	public int get_id()
	{
		return _id;
	}

	/**
	 * IDを設定
	 * 
	 * @param _id ID
	 */
	public void set_id(int _id)
	{
		this._id = _id;
	}

	/**
	 * 日付を取得
	 * 
	 * @return 日付
	 */
	public String getDate()
	{
		return date;
	}

	/**
	 * 日付を設定
	 * 
	 * @param date 日付
	 */
	public void setDate(String date)
	{
		this.date = date;
	}

	/**
	 * タイトルを取得
	 * 
	 * @return タイトル
	 */
	public String getTitle()
	{
		return title;
	}

	/**
	 * タイトルを設定
	 * 
	 * @param title タイトル
	 */
	public void setTitle(String title)
	{
		this.title = title;
	}

	/**
	 * 内容を取得
	 * 
	 * @return 内容
	 */
	public String getContent()
	{
		return content;
	}

	/**
	 * 内容を設定
	 * 
	 * @param content 内容
	 */
	public void setContent(String content)
	{
		this.content = content;
	}

	/**
	 * 登録日時
	 * 
	 * @return 登録日時
	 */
	public String getInsert_date()
	{
		return insert_date;
	}

	/**
	 * 登録日時
	 * 
	 * @param insert_date 登録日時
	 */
	public void setInsert_date(String insert_date)
	{
		this.insert_date = insert_date;
	}

	/**
	 * 更新日時
	 * 
	 * @return 更新日時
	 */
	public String getUpdate_date()
	{
		return update_date;
	}

	/**
	 * 更新日時
	 * 
	 * @param update_date 更新日時
	 */
	public void setUpdate_date(String update_date)
	{
		this.update_date = update_date;
	}

	/**
	 * 削除フラグ
	 * 
	 * @return 削除フラグ
	 */
	public int getDelete_flag()
	{
		return delete_flag;
	}

	/**
	 * 削除フラグ
	 * 
	 * @param delete_flag
	 */
	public void setDelete_flag(int delete_flag)
	{
		this.delete_flag = delete_flag;
	}

	@Override
	public String getCreateTableSql()
	{
		StringBuilder sql = new StringBuilder();
		sql.append("CREATE TABLE ");
		sql.append(TABLE_NAME);
		sql.append("(");
		sql.append(COLUMN_NAME_ID).append(" integer primary key autoincrement not null").append(",");
		sql.append(COLUMN_NAME_DATE).append(" text not null").append(",");
		sql.append(COLUMN_NAME_TITLE).append(" text not null").append(",");
		sql.append(COLUMN_NAME_CONTENT).append(" text not null").append(",");
		sql.append(COLUMN_NAME_INSERT_DATE).append(" text").append(",");
		sql.append(COLUMN_NAME_UPDATE_DATE).append(" text").append(",");
		sql.append(COLUMN_NAME_DELETE_FLAG).append(" integer default 0");
		sql.append(")");
		Log.d(this.getClass().getSimpleName(), sql.toString());

		return sql.toString();
	}
}
